home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / mmdf / mmdf-IIb.43 / src / uucp / ch_uucp.c next >
Encoding:
C/C++ Source or Header  |  1990-02-28  |  3.5 KB  |  152 lines

  1. #include "util.h"
  2. #include "mmdf.h"
  3. #include "ch.h"
  4. #include "phs.h"
  5. #include <signal.h>
  6.  
  7. /*
  8.  *            C H _ U U C P . C
  9.  *
  10.  *        Take message and feed a request to UUX
  11.  *
  12.  *  qu2uu_send does the interesting work.  This interface was developed
  13.  *  for MMDF by Doug Kingston at the US Army Ballistics Research Lab,
  14.  *  Aberdeen, Maryland.    <dpk@brl>
  15.  *
  16.  *            Original Version 21 Oct 81
  17.  *
  18.  *            Revision History
  19.  *            ================
  20.  *
  21.  */
  22.  
  23. /*
  24.  *     MULTI-CHANNEL MEMO DISTRIBUTION FACILITY  (MMDF)
  25.  *     
  26.  *
  27.  *     Department of Electrical Engineering
  28.  *     University of Delaware
  29.  *     Newark, Delaware  19711
  30.  *
  31.  *     Phone:  (302) 738-1163
  32.  *     
  33.  *
  34.  */
  35.  
  36. extern char *dupfpath ();
  37. extern LLog *logptr;
  38.  
  39. Chan    *curchan;    /* what channel am I?           */
  40.  
  41. LOCFUN uu_init();
  42.  
  43. /*      MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN MAIN     */
  44.  
  45. main (argc, argv)
  46. short     argc;
  47. char   *argv[];
  48. {
  49.     short retval;
  50.  
  51.     mmdf_init (argv[0]);
  52.     siginit ();
  53.     signal (SIGINT, SIG_IGN);      /* always ignore interrupts             */
  54.  
  55.     if ((curchan = ch_nm2struct (argv[0])) == (Chan *) NOTOK)
  56.     err_abrt (RP_PARM, "unknown channel name '%s'", argv[0]);
  57.  
  58.     retval = ch_uucp (argc, argv);
  59.     ll_close (logptr);
  60. #ifdef DEBUG
  61.     ll_log (logptr, LLOGPTR, "exit value is %d.", retval);
  62. #endif
  63.     exit (retval);
  64. }
  65. /* **************  (ch_) UUCP MAIL DELIVERY  ************************ */
  66.  
  67. ch_uucp (argc, argv)          /* send to remote machine via UUCP   */
  68. short     argc;
  69. char   *argv[];
  70. {
  71.     ch_llinit (curchan);
  72. #ifdef DEBUG
  73.     ll_log (logptr, LLOGPTR, "ch_uucp ()");
  74. #endif
  75.  
  76.     if (rp_isbad (qu_init (argc, argv)))
  77.     return (RP_NO);          /* problem setting-up for deliver     */
  78.  
  79.     if (rp_isbad (uu_init ()))
  80.     return (RP_NO);          /* problem with uucp startup */
  81.  
  82.     phs_note (curchan, PHS_CNSTRT);     /* make a timestamp */
  83.     phs_note (curchan, PHS_CNGOT);      /* make a timestamp */
  84.     if (rp_isbad (qu2uu_send ()))
  85.     return (RP_NO);          /* send the batch of outgoing mail    */
  86.  
  87.     qu_end (OK);          /* done with Deliver function         */
  88.     phs_end  (curchan, RP_OK);    /* note end of session */
  89.  
  90. #ifdef DEBUG
  91.     ll_log (logptr, LLOGFTR, "ch_uucp: Normal Return!");
  92. #endif
  93.     return (OK);          /* NORMAL RETURN                      */
  94. }
  95.  
  96. /* */
  97. /*VARARGS2*/
  98. err_abrt (code, fmt, b, c, d)     /* terminate ourself                  */
  99. short     code;
  100. char    *fmt, *b, *c, *d;
  101. {
  102.     char linebuf[LINESIZE];
  103.  
  104.     qu_end (NOTOK);
  105.     if (rp_isbad (code))
  106.     {
  107. #ifdef DEBUG
  108.     if (rp_gbval (code) == RP_BNO || logptr -> ll_level >= LLOGTMP)
  109.     {                         /* don't worry about minor stuff      */
  110.         sprintf (linebuf, "%s%s", "err [ ABEND (%s) ]\t", fmt);
  111.         ll_log (logptr, LLOGFAT, linebuf, rp_valstr (code), b, c, d);
  112.     }
  113. #endif
  114.     }
  115.     ll_close (logptr);           /* in case of cycling, close neatly   */
  116.     exit (code);
  117. }
  118.  
  119. /* */
  120. /*ARGSUSED*/
  121. LOCFUN
  122.     uu_init()
  123. {
  124. #ifdef notdef
  125. #define    UU_CARGS    8
  126.     char    *argv[UU_CARGS];
  127.     int    argc;
  128. #endif /* notdef */
  129.  
  130. #ifdef DEBUG
  131.     ll_log (logptr, LLOGBTR, "uu_init ()");
  132. #endif
  133. #ifdef notdef
  134.     if (isstr(curchan->ch_confstr)) {
  135.     argc = sstr2arg(curchan->ch_confstr, UU_CARGS, argv, " \t");
  136.     while (argc < UU_CARGS) {
  137.         if (prefix("naddrs=", argv[argc], 7)) {
  138.         if ((uu_naddrs = atoi(argv[argc]+7)) < 1)
  139.             uu_naddrs = 1;
  140. #ifdef DEBUG
  141.         ll_log (logptr, LLOGFTR, "uu_naddrs now %d", uu_naddrs);
  142.         } else {
  143.         ll_log (logptr, LLOGTMP, "unknown uucp confstr '%s'", argv[argc]);
  144. #endif
  145.         }
  146.         argc++;
  147.     }
  148.     }
  149. #endif /* notdef */
  150.     return (RP_OK);
  151. }
  152.